package com.munhrasoft.dinamica.business.entities;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;

@Entity
@NamedQueries(value = {
    @NamedQuery(name = "findByProcess", query = "SELECT chkHeader FROM CheckListHeader chkHeader WHERE "
            + "chkHeader.operacao = :oper and chkHeader.tipo = :tipo "
            + "and chkHeader.modalidade1 = :modal1 and chkHeader.modalidade2 = :modal2"),
    @NamedQuery(name = "findAllChkHeaders", query = "SELECT chkHeader FROM CheckListHeader chkHeader"),

    @NamedQuery(name = "findByChkTitulo", query = "SELECT chkHeader FROM CheckListHeader chkHeader "
            + "WHERE chkHeader.titulo = :titulo") })
@SequenceGenerator(name = "chkHeaderSeq", initialValue = 1, allocationSize = 1)
public class CheckListHeader {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "chkHeaderSeq")
    private Long                 chkHeader_id;
    @Column(length = 500)
    private String               titulo;
    private String               operacao;
    private String               tipo;
    private String               modalidade1;
    private String               modalidade2;
    // TODO Se nao fizer a amarracao abaixo nao vai funcionar o cadastro
    // @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    private List<CheckListLines> checkLines;

    // TODO implementar o equals

    public Long getChkHeader_id() {
        return chkHeader_id;
    }

    public void setChkHeader_id(Long chkHeader_id) {
        this.chkHeader_id = chkHeader_id;
    }

    public String getOperacao() {
        return operacao;
    }

    public void setOperacao(String operacao) {
        this.operacao = operacao;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public String getModalidade1() {
        return modalidade1;
    }

    public void setModalidade1(String modalidade1) {
        this.modalidade1 = modalidade1;
    }

    public String getModalidade2() {
        return modalidade2;
    }

    public void setModalidade2(String modalidade2) {
        this.modalidade2 = modalidade2;
    }

    public List<CheckListLines> getCheckLines() {
        return checkLines;
    }

    public void setCheckLines(List<CheckListLines> checkLines) {
        this.checkLines = checkLines;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

}
